<!doctype html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <link rel="icon" type="image/svg+xml" href="/vite.svg" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>登记证管理平台</title>
  <style>
    html,
    body,
    #app {
      height: 100%;
      margin: 0px;
      padding: 0px;
    }

    .chromeframe {
      margin: 0.2em 0;
      background: #f05a23;
      color: #000;
      padding: 0.2em 0;
    }

    #loader-wrapper {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      z-index: 999999;
    }

    #loader {
      display: block;
      position: relative;
      left: 50%;
      top: 50%;
      width: 150px;
      height: 150px;
      margin: -75px 0 0 -75px;
      border-radius: 50%;
      border: 3px solid transparent;
      border-top-color: #f05a23;
      -webkit-animation: spin 2s linear infinite;
      -ms-animation: spin 2s linear infinite;
      -moz-animation: spin 2s linear infinite;
      -o-animation: spin 2s linear infinite;
      animation: spin 2s linear infinite;
      z-index: 1001;
    }

    #loader:before {
      content: "";
      position: absolute;
      top: 5px;
      left: 5px;
      right: 5px;
      bottom: 5px;
      border-radius: 50%;
      border: 3px solid transparent;
      border-top-color: #f05a23;
      -webkit-animation: spin 3s linear infinite;
      -moz-animation: spin 3s linear infinite;
      -o-animation: spin 3s linear infinite;
      -ms-animation: spin 3s linear infinite;
      animation: spin 3s linear infinite;
    }

    #loader:after {
      content: "";
      position: absolute;
      top: 15px;
      left: 15px;
      right: 15px;
      bottom: 15px;
      border-radius: 50%;
      border: 3px solid transparent;
      border-top-color: #f05a23;
      -moz-animation: spin 1.5s linear infinite;
      -o-animation: spin 1.5s linear infinite;
      -ms-animation: spin 1.5s linear infinite;
      -webkit-animation: spin 1.5s linear infinite;
      animation: spin 1.5s linear infinite;
    }


    @-webkit-keyframes spin {
      0% {
        -webkit-transform: rotate(0deg);
        -ms-transform: rotate(0deg);
        transform: rotate(0deg);
      }

      100% {
        -webkit-transform: rotate(360deg);
        -ms-transform: rotate(360deg);
        transform: rotate(360deg);
      }
    }

    @keyframes spin {
      0% {
        -webkit-transform: rotate(0deg);
        -ms-transform: rotate(0deg);
        transform: rotate(0deg);
      }

      100% {
        -webkit-transform: rotate(360deg);
        -ms-transform: rotate(360deg);
        transform: rotate(360deg);
      }
    }


    #loader-wrapper .loader-section {
      position: fixed;
      top: 0;
      width: 51%;
      height: 100%;
      background: #304156;
      z-index: 1000;
      -webkit-transform: translateX(0);
      -ms-transform: translateX(0);
      transform: translateX(0);
    }

    #loader-wrapper .loader-section.section-left {
      left: 0;
    }

    #loader-wrapper .loader-section.section-right {
      right: 0;
    }


    .loaded #loader-wrapper .loader-section.section-left {
      -webkit-transform: translateX(-100%);
      -ms-transform: translateX(-100%);
      transform: translateX(-100%);
      -webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
      transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
    }

    .loaded #loader-wrapper .loader-section.section-right {
      -webkit-transform: translateX(100%);
      -ms-transform: translateX(100%);
      transform: translateX(100%);
      -webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
      transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
    }

    .loaded #loader {
      opacity: 0;
      -webkit-transition: all 0.3s ease-out;
      transition: all 0.3s ease-out;
    }

    .loaded #loader-wrapper {
      visibility: hidden;
      -webkit-transform: translateY(-100%);
      -ms-transform: translateY(-100%);
      transform: translateY(-100%);
      -webkit-transition: all 0.3s 1s ease-out;
      transition: all 0.3s 1s ease-out;
    }

    .no-js #loader-wrapper {
      display: none;
    }

    .no-js h1 {
      color: #222222;
    }

    #loader-wrapper .load_title {
      font-family: 'Open Sans';
      color: #f05a23;
      font-size: 19px;
      width: 100%;
      text-align: center;
      z-index: 9999999999999;
      position: absolute;
      top: 60%;
      opacity: 1;
      line-height: 30px;
    }

    #loader-wrapper .load_title span {
      font-weight: normal;
      font-style: italic;
      font-size: 13px;
      color: #FFF;
      opacity: 0.5;
    }
  </style>
  <script>
    this.globalThis || (this.globalThis = this);
  </script>
</head>

<body>
  <div id="version">
    <div id="app">
      <div id="loader-wrapper">
        <div id="loader"></div>
        <div class="loader-section section-left"></div>
        <div class="loader-section section-right"></div>
        <div class="load_title">正在加载系统资源，请耐心等待</div>
      </div>
    </div>
  </div>
  <script>
        function getBrowserVersion(browserType, UserAgent) {
      let versions = '';
      switch (browserType) {
        case 'IE':
          versions = UserAgent.match(/(msie\s|trident.*rv:)([\w.]+)/)[2];
          break;
        case 'Chrome':
          for (let mt in navigator.mimeTypes) {
            //360 pc      
            if (navigator.mimeTypes[mt]['type'] == 'application/360softmgrplugin') {
              browserType = '360';
            }
          }
          versions = UserAgent.match(/chrome\/([\d.]+)/)[1];
          break;

        case 'Firefox':
          versions = UserAgent.match(/firefox\/([\d.]+)/)[1];
          break;
        case 'Opera':
          versions = UserAgent.match(/opera\/([\d.]+)/)[1];
          break;
        case 'Safari':
          versions = UserAgent.match(/version\/([\d.]+)/)[1];
          break;
        case 'Edge':
          versions = UserAgent.match(/edge\/([\d.]+)/)[1];
          break;
        case 'QQBrowser':
          versions = UserAgent.match(/qqbrowser\/([\d.]+)/)[1];
          break;
      }
      return parseInt(versions);
    }
    function getBrowser() {
      const UserAgent = navigator.userAgent.toLowerCase();
      const browserInfo = {};
      const browserObj = {
        IE: window.ActiveXObject || "ActiveXObject" in window,
        Chrome: UserAgent.indexOf('chrome') > -1 && UserAgent.indexOf('safari') > -1,
        Firefox: UserAgent.indexOf('firefox') > -1,
        Opera: UserAgent.indexOf('opera') > -1,
        Safari: UserAgent.indexOf('safari') > -1 && UserAgent.indexOf('chrome') == -1,
        Edge: UserAgent.indexOf('edge') > -1,
        QQBrowser: /qqbrowser/.test(UserAgent),
        WeixinBrowser: /MicroMessenger/i.test(UserAgent)
      };
      for (let key in browserObj) {
        if (browserObj.hasOwnProperty(key) && browserObj[key]) {
          browserInfo.browser = key;
          browserInfo.versions = getBrowserVersion(key, UserAgent);
          break
        }
      }
      return browserInfo;
    }
    // 比如vue3+elementPlus要求浏览器最低版本要求 Edge ≥ 79	Firefox ≥ 78 Chrome ≥ 64	Safari ≥ 12 
    const browserList = [
      {
        browser: 'Edge',
        versions: 79
      },
      {
        browser: 'Firefox',
        versions: 78
      },
      {
        browser: 'Chrome',
        versions: 88
      },
      {
        browser: 'Safari',
        versions: 12
      }
    ];
    function isUpgradeBrowser() {
      const { browser, versions } = getBrowser()
      for (const objKey of browserList) {
        if (objKey.browser === browser && versions < objKey.versions) {
          // 需要升级
          return {
            browser,
            versions,
            lowestVersions: objKey.versions,
            isUpdate: true
          }
        }
      }
      // 默认不需要升级
      return {
        browser,
        versions,
        isUpdate: false
      }
    };
    const { isUpdate, browser, versions, lowestVersions = '' } = isUpgradeBrowser()
    if (isUpdate) {
      document.body.innerHTML = `<div style='text-align:center;padding:20px 0;'>您当前${browser}浏览器版本过低(版本${versions}),建议访问网页不低于${lowestVersions}版本,如果出现不能访问页面情况,请您升级浏览器版本在尝试!</div>`;
    }
  </script>
  <script type="module" src="/src/main.ts"></script>
</body>

</html>